/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 级别调整Entity
 * @author jyangye
 * @version 2018-01-06
 */
public class ViEmpLevelAdjust extends DataEntity<ViEmpLevelAdjust> {
	
	private static final long serialVersionUID = 1L;
	private String employeeId;		// 员工ID
//	private String compId;		// 组织机构ID
//	private String deptId;		// 部门ID
//	private String postId;		// 岗位ID

    private Office comp;
    private Office dept;
    private Office post;

	private String name;		// 姓名
	private String code;		// 身份证号
	private String reason;		// 调整原因
	private Date makeDate;		// 生效日期
	private String oldLevel;		// 原级别
	private String newLevel;		// 先级别
	private String isActive;		// 是否生效
	private Date beginMakeDate;		// 开始 生效日期
	private Date endMakeDate;		// 结束 生效日期
	
	public ViEmpLevelAdjust() {
		super();
	}

	public ViEmpLevelAdjust(String id){
		super(id);
	}

	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

	public Office getComp() {
		return comp;
	}

	public void setComp(Office comp) {
		this.comp = comp;
	}

	@ExcelField(title="部门", align=2, sort=40)
	public Office getDept() {
		return dept;
	}

	public void setDept(Office dept) {
		this.dept = dept;
	}

	@ExcelField(title="岗位", align=2, sort=50)
	public Office getPost() {
		return post;
	}

	public void setPost(Office post) {
		this.post = post;
	}
	
	@Length(min=1, max=64, message="姓名长度必须介于 1 和 64 之间")
	@ExcelField(title="姓名", align=2, sort=60)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=32, message="身份证号长度必须介于 1 和 64 之间")
	@ExcelField(title="*身份证号", align=2, sort=70, isText = true)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@Length(min=0, max=64, message="调整原因长度必须介于 0 和 64 之间")
	@ExcelField(title="调整原因", align=2, sort=80, dictType = "emp_level_adjust_reason")
	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@NotNull(message="生效日期不能为空")
	@ExcelField(title="生效日期", align=2, sort=90)
	public Date getMakeDate() {
		return makeDate;
	}

	public void setMakeDate(Date makeDate) {
		this.makeDate = makeDate;
	}

	@ExcelField(title="原级别", align=2, sort=100)
	public String getOldLevel() {
		return oldLevel;
	}

	public void setOldLevel(String oldLevel) {
		this.oldLevel = oldLevel;
	}
	
	@Length(min=1, max=32, message="先级别长度必须介于 1 和 32 之间")
	@ExcelField(title="现级别", align=2, sort=110)
	public String getNewLevel() {
		return newLevel;
	}

	public void setNewLevel(String newLevel) {
		this.newLevel = newLevel;
	}

	public String getIsActive() {
		return isActive;
	}

	public void setIsActive(String isActive) {
		this.isActive = isActive;
	}
	
	public Date getBeginMakeDate() {
		return beginMakeDate;
	}

	public void setBeginMakeDate(Date beginMakeDate) {
		this.beginMakeDate = beginMakeDate;
	}
	
	public Date getEndMakeDate() {
		return endMakeDate;
	}

	public void setEndMakeDate(Date endMakeDate) {
		this.endMakeDate = endMakeDate;
	}
		
}